package com.zx.auth.block.service;

import com.zx.auth.block.param.OAuth2AuthorizationParam;
import com.zx.auth.block.vo.OAuth2AuthorizationVO;
import com.zx.core.wrapper.ObjectWrapper;
import com.zx.core.wrapper.PageWrapper;
import com.zx.core.wrapper.ResponseWrapper;

/**
 * OAuth2授权管理服务接口
 * 定义OAuth2授权的业务逻辑接口
 */
public interface IOAuth2AuthorizationService {

    /**
     * 根据ID获取OAuth2授权信息
     *
     * @param id 授权ID
     * @return 授权信息
     */
    ObjectWrapper<OAuth2AuthorizationVO> getAuthorizationById(String id);

    /**
     * 分页查询OAuth2授权列表
     *
     * @param authorizationParam 授权参数
     * @return 授权列表
     */
    PageWrapper<OAuth2AuthorizationVO> listAuthorizations(OAuth2AuthorizationParam authorizationParam);

    /**
     * 删除OAuth2授权
     *
     * @param id 授权ID
     * @return 删除结果
     */
    ResponseWrapper deleteAuthorization(String id);
}